package com.heima.article.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.heima.common.constants.message.ArticleVisitStreamMess;
import com.heima.model.article.dtos.ArticleDto;
import com.heima.model.article.dtos.ArticleHomeDto;
import com.heima.model.article.pojos.ApArticle;
import com.heima.model.common.dtos.ResponseResult;

/**
 * <p>
 * 文章信息表，存储已发布的文章 服务类
 * </p>
 *
 * @author itheima
 */
public interface ApArticleService extends IService<ApArticle> {

    /**
     * 保存文章三张表的数据
     * @param articleDto 文章数据
     * @return data设置文章的id
     */
    ResponseResult saveArticle(ArticleDto articleDto);

    /**
     * 根据参数加载文章列表  mysql
     * @param loadtype 1为加载更多  2为加载最新
     * @param dto
     * @return
     */
    ResponseResult load(Short loadtype, ArticleHomeDto dto);



    /**
     * 根据参数加载文章列表 redis
     * @param loadtype 1为加载更多  2为加载最新
     * @param dto
     * @return
     */
    ResponseResult load2(Short loadtype, ArticleHomeDto dto, boolean firstPage);
    /**
     * 更新文章行为数据及缓存
     * @param streamMess
     */
    void updateApArticle(ArticleVisitStreamMess streamMess);

}
